/**
 * jims
 */
package com.jims.master.modules.csm.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 消耗品出库主记录Entity
 * @author fengyg
 * @version 2017-03-16
 */
public class ExpExportMaster extends DataEntity<ExpExportMaster> {

    private static final long serialVersionUID = 1L;
    private String documentNo;		// 出库单号
    private String storageId;		// 库存单位
    private Date exportDate;		// 出库日期
    private String receiver;		// 收货方
    private Double accountReceivable;		// 应付款
    private Double accountPayed;		// 已付款
    private Double additionalFee;		// 附加费
    private String exportClass;		// 出库类别
    private String accountIndicator;		// 记账标志
    private Date acctDate;		// 记账日期
    private String acctOperator;		// 记账人
    private String tallyIndicator;		// 上账标志
    private Date tallyDate;		// 上账日期
    private String tallyOperator;		// 上账人
    private String voucherNo;		// 凭证号
    private String recoveryDocuNo;		// 纠错出库的单据号
    private String importOperator;		// 对应的入库者
    private Date importDate;		// 对应的入库日期
    private String importMasterId;		// 对应的入库主表ID(出库后,收货方批量入库时主表ID)
    private String accountType; //付款方式

    public String getUpdateDateStr() {
        return updateDateStr;
    }

    public void setUpdateDateStr(String updateDateStr) {
        this.updateDateStr = updateDateStr;
    }

    public String getCreateDateStr() {
        return createDateStr;
    }

    public void setCreateDateStr(String creatDateStr) {
        this.createDateStr = creatDateStr;
    }

    private String createDateStr;
    private String updateDateStr;

    public ExpExportMaster() {
        super();
    }

    public ExpExportMaster(String id){
        super(id);
    }

    @Length(min=1, max=32, message="出库单号长度必须介于 1 和 32 之间")
    public String getDocumentNo() {
        return documentNo;
    }

    public void setDocumentNo(String documentNo) {
        this.documentNo = documentNo;
    }

    @Length(min=1, max=64, message="库存单位长度必须介于 1 和 64 之间")
    public String getStorageId() {
        return storageId;
    }

    public void setStorageId(String storageId) {
        this.storageId = storageId;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getExportDate() {
        return exportDate;
    }

    public void setExportDate(Date exportDate) {
        this.exportDate = exportDate;
    }

    @Length(min=1, max=64, message="收货方长度必须介于 1 和 64 之间")
    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public Double getAccountReceivable() {
        return accountReceivable;
    }

    public void setAccountReceivable(Double accountReceivable) {
        this.accountReceivable = accountReceivable;
    }

    public Double getAccountPayed() {
        return accountPayed;
    }

    public void setAccountPayed(Double accountPayed) {
        this.accountPayed = accountPayed;
    }

    public Double getAdditionalFee() {
        return additionalFee;
    }

    public void setAdditionalFee(Double additionalFee) {
        this.additionalFee = additionalFee;
    }

    @Length(min=1, max=64, message="出库类别长度必须介于 1 和 64 之间")
    public String getExportClass() {
        return exportClass;
    }

    public void setExportClass(String exportClass) {
        this.exportClass = exportClass;
    }

    @Length(min=0, max=1, message="记账标志长度必须介于 0 和 1 之间")
    public String getAccountIndicator() {
        return accountIndicator;
    }

    public void setAccountIndicator(String accountIndicator) {
        this.accountIndicator = accountIndicator;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getAcctDate() {
        return acctDate;
    }

    public void setAcctDate(Date acctDate) {
        this.acctDate = acctDate;
    }

    @Length(min=0, max=64, message="记账人长度必须介于 0 和 64 之间")
    public String getAcctOperator() {
        return acctOperator;
    }

    public void setAcctOperator(String acctOperator) {
        this.acctOperator = acctOperator;
    }

    @Length(min=0, max=1, message="上账标志长度必须介于 0 和 1 之间")
    public String getTallyIndicator() {
        return tallyIndicator;
    }

    public void setTallyIndicator(String tallyIndicator) {
        this.tallyIndicator = tallyIndicator;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getTallyDate() {
        return tallyDate;
    }

    public void setTallyDate(Date tallyDate) {
        this.tallyDate = tallyDate;
    }

    @Length(min=0, max=64, message="上账人长度必须介于 0 和 64 之间")
    public String getTallyOperator() {
        return tallyOperator;
    }

    public void setTallyOperator(String tallyOperator) {
        this.tallyOperator = tallyOperator;
    }

    @Length(min=0, max=64, message="凭证号长度必须介于 0 和 64 之间")
    public String getVoucherNo() {
        return voucherNo;
    }

    public void setVoucherNo(String voucherNo) {
        this.voucherNo = voucherNo;
    }

    @Length(min=0, max=64, message="纠错出库的单据号长度必须介于 0 和 64 之间")
    public String getRecoveryDocuNo() {
        return recoveryDocuNo;
    }

    public void setRecoveryDocuNo(String recoveryDocuNo) {
        this.recoveryDocuNo = recoveryDocuNo;
    }

    @Length(min=0, max=64, message="对应的入库者长度必须介于 0 和 64 之间")
    public String getImportOperator() {
        return importOperator;
    }

    public void setImportOperator(String importOperator) {
        this.importOperator = importOperator;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getImportDate() {
        return importDate;
    }

    public void setImportDate(Date importDate) {
        this.importDate = importDate;
    }

    @Length(min=0, max=64, message="对应的入库主表ID长度必须介于 0 和 64 之间")
    public String getImportMasterId() {
        return importMasterId;
    }

    public void setImportMasterId(String importMasterId) {
        this.importMasterId = importMasterId;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }
}